Technical Details: Random Number Generators (RNGs)
FreeOTFE offers a choice of four different random number generators (RNGs) for use when creating new FreeOTFE volumes:
- Microsoft CryptoAPI
- Mouse movement
- cryptlib
- PKCS#11 tokens
Whichever one is selected must produce 4096 bits (512 bytes) of
cryptographically secure random numbers. This random data is used in
three ways:
- As the master key used for encrypting/decrypting your data
- For salting
- As random "padding" to make up otherwise unused space within the
FreeOTFE volume's critical data block. (See volume layout
documentation for further details)
If more than one RNG is selected, their output will be combined (XOR'd together) and the resulting data used. In this way, the random data generated will never be weaker than the strongest selected RNG.
The Microsoft CryptoAPI is used to generate random data.
Mouse Movement
This relies on the user "waggling" the mouse in a random fashion to generate random data.
Every 100ms the mouse pointer is checked. If it has moved
significantly, then the X and Y coordinates of the mouse pointer are
sampled, and the LSB of each is added to the random data collected.
Due to the volume of random data required, and the fact that only 2
bits of random data are collected for each mouse position sampled, this
is a relatively slow process.
cryptlib
cryptlib is used to generate random data.
Note: This option is only available if cryptlib (cl32.dll) is installed; see the cryptlib WWW site for further details and download.
If you have a security token or smartcard, this may be used as a RNG.
See the Security Token/Smartcard Support section for more information on setting up and using PKCS#11 tokens.
|